<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<!-- <script>  
    1.// 题目描述 找出元素 item 在给定数组 arr 中的位置 输出描述: 如果数组中存在 item，则返回元素在数组中的位置，否则返回 -1
    
        // 示例
        // 输入  [ 1, 2, 3, 4 ], 3
        // 输出   2  
    
       var arr=[ 1, 2, 3, 4 ];
       var res=arr.indexOf(3);
       console.log(res);
</script>
     
    
    <script>
    2.// 题目描述 计算给定数组 arr 中所有元素的总和 输入描述: 数组中的元素均为 Number 类型
    
    // 示例
    // 输入  [ 1, 2, 3, 4 ]
    // 输出  10
    var arr=[ 1, 2, 3, 4 ];
    
    var res=0;
    for(var i=0;i<arr.length;i++)
    {
        res+=arr[i];
    }
    console.log(res);
    </script> -->
    
    <script>    
    3.// 题目描述 移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr，结果返回新的数组
    
    // 示例
    // 输入  [1, 2, 3, 4, 2], 2
    // 输出  [1, 3, 4]
    
    // var arr= [1, 2, 3, 4, 2],item=2;
    // var res=[];
    // for(var i=0;i<arr.length;i++)
    // {
    //     //如果数组里的元素不等于2则添加
    //     if(arr[i]!=item)
    //     {   
            //添加到新的數組里
    //         res.push(arr[i])    
    //     }
        
      
    // }
    // console.log(res);
   
    // console.log(arr);
    </script>
    
    <script>
    4.// 题目描述 移除数组 arr 中的所有值与 item 相等的元素，直接在给定的 arr 数组上进行操作，并将结果返回
    // 示例
    // 输入  [1, 2, 2, 3, 4, 2, 2], 2
    // 输出  [1, 3, 4]
    // var  arr= [1, 2, 2, 3, 4, 2, 2], item=2;
    // var res=[];
    // for(var i=0;i<arr.length;i++)
    // {
    //     //如果数组里的元素不等于2则添加
    //     if(arr[i]!=item)
    //     {   
    //         //添加到新的數組里
    //         res.push(arr[i])    
    //     }
    
    // }
    // //將res从新赋给arr
    //   var arr=res;
    //  console.log(arr);
    </script>
    
    <script>
    5.// 题目描述 在数组 arr 末尾添加元素 item。不要直接修改数组 arr，结果返回新的数组
    
    // 示例
    // 输入  [1, 2, 3, 4],  10
    // 输出  [1, 2, 3, 4, 10]

    //  var arr=[1, 2, 3, 4],item=10;
    //arr当前长度
    //  console.log(arr.push(item)); 
    //  console.log(arr);

    </script>
    
    
    <script>
    
    6.// 题目描述 删除数组 arr 最后一个元素。不要直接修改数组 arr，结果返回新的数组
    // 示例
    // 输入  [1, 2, 3, 4]
    // 输出  [1, 2, 3]

    // var arr=[1,2,3,4];
    //arr当前长度
    //  console.log(arr.pop()); 
    //  console.log(arr);
    </script>
    
    <script>        
    7.// 题目描述 在数组 arr 开头添加元素 item。不要直接修改数组 arr，结果返回新的数组
    
    // 示例
    // 输入  [1, 2, 3, 4], 10
    // 输出  [10, 1, 2, 3, 4]
    
       
    //  var arr=[1, 2, 3, 4],item=10;
    //  arr.unshift(item); 
    //  console.log(arr);
    </script>
    
    <script>
    8.//题目描述 删除数组 arr 第一个元素。不要直接修改数组 arr，结果返回新的数组
    
    // 示例
    // 输入  [1, 2, 3, 4]
    // 输出  [2, 3, 4]
    
    //   var arr=[1,2,3,4];
    //  arr.shift(); 
    //  console.log(arr);
    </script>
    
        <script>
    9.// 题目描述 合并数组 arr1 和数组 arr2。不要直接修改数组 arr，结果返回新的数组
    
    // 示例
    // 输入  [1, 2, 3, 4], ['a', 'b', 'c', 1]
    // 输出  [1, 2, 3, 4, 'a', 'b', 'c', 1]

    // var arr1=[1, 2, 3, 4],arr2= ['a', 'b', 'c', 1];
    // var res=arr1.concat(arr2)
    // console.log(res);
        </script>
    
        <script>
    10.// 题目描述 在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr，结果返回新的数组
    
    // 示例
    // 输入  [1, 2, 3, 4], 'z', 2
    // 输出  [1, 2, 'z', 3, 4]

    //    var arr=[1, 2, 3, 4];
    //    arr.splice(2,0,'z')
    //    console.log(arr);
        </script>
    
        
    <script>
    11.// 题目描述 统计数组 arr 中值等于 item 的元素出现的次数
    
    // 示例
    // 输入  [1, 2, 4, 4, 3, 4, 3], 4
    // 输出  3

    // var arr= [1, 2, 4, 4, 3, 4, 3] ,item=4;
    // var res=[]
    // for (var i =0; i < arr.length; i++) 
    // {    
    //     if(arr[i]==item)
    //     {
    //         res.push(item)
    //     }
    // }
    // //返回res的长度
    //  console.log(res.length);
    </script>
    
        <script>
    12.// 题目描述 找出数组 arr 中重复出现过的元素
    
    // 示例
    // 输入  [1, 2, 4, 4, 3, 3, 1, 5, 3]
    // 输出  [1, 3, 4]
    
    // var arr= [1, 2, 4, 4, 3, 3, 1, 5, 3];
    // arr.sort()
    // console.log(arr);
    // var res=[];
    // for(var i=0;i<arr.length;i++)
    // {  
    //     //如果当前的元素等于它的下一个并且res中没有这个元素
    //    if(arr[i]==arr[i+1]&&res.indexOf(arr[i])==-1)
    //    {
    //     res.push(arr[i]);
    //    }
    // }
    // console.log(res);
        </script>
    
    
        <script>
    13.// 题目描述 为数组 arr 中的每个元素求二次方。不要直接修改数组 arr，结果返回新的数组
    
    // 示例
    // 输入  [1, 2, 3, 4]
    // 输出  [1, 4, 9, 16]
    
    // var arr= [1, 2, 3, 4];
    // var arr2=[];
    // for(var i=0;i<arr.length;i++)
    // {
    //    console.log(arr[i]*arr[i]);
    // }

        </script>
        
    
        <script>
    // 题目描述 在数组 arr 中，查找值与 item 相等的元素出现的所有位置
    
    // 示例
    // 输入  'abcdefabc'
    // 输出  [0, 6]

         var arr='abcdefabc',item='a';
   
        function find(arr, item){
        var res = [];
        for(var i = 0; i < arr.length; i++){
            if(arr[i] === item)
            {
                res.push(i);
            }
        }
        return res;
    }
          console.log(find(arr,item));
        </script>
    
    
    
    <body>
        
       <h1>JavaScript数组常用方法练习</h1>
    </body>

</html>